import pinia from '@/stores';
import { useUserInfoStore } from '@/stores/userInfo';
import type { App } from 'vue';

export default function (app: App) {
  const userInfoStore = useUserInfoStore(pinia);

  app.directive('has', {
    /* 
      组件挂载的时候执行
      el：指令所在的标签，也就是button
      binding：包含指令相关数据的对象
         value：指令属性值，也就是按钮对应的权限值
    */

    mounted(el, binding) {
      // 如果value不想在用户的按钮权限列表buttons中，就将当前el移除
      const buttons = userInfoStore.buttons;
      if (!buttons.includes(binding.value)) {
        el.parentNode.removeChild(el);
      }
    },
  });
}
